package com.xtoad.ecms.baseinfo.service;

import com.xtoad.ecms.baseinfo.dto.UserDTO;

import java.util.List;

/**
 * 用户Service
 *
 * @author xtoad
 * @date 2020/05/29
 */
public interface IUserService {

    /**
     * 根据id查询用户
     *
     * @param id 用户id
     * @return 查询结果
     */
    UserDTO getUserById(final Long id);

    /**
     * 查询全部用户，不分页
     *
     * @return 查询结果
     */
    List<UserDTO> getAllUser();

    /**
     * 新增用户
     *
     * @param userDTO 保存对象
     * @return 新增结果
     */
    UserDTO insert(final UserDTO userDTO);

    /**
     * 删除用户
     *
     * @param id 删除对象id
     */
    void deleteById(final Long id);

    /**
     * 删除用户
     *
     * @param userDTO 删除对象
     */
    void delete(final UserDTO userDTO);

    /**
     * 更新用户
     *
     * @param userDTO 更新对象
     * @return 更新结果
     */
    UserDTO update(final UserDTO userDTO);

    /**
     * 批量新增用户
     *
     * @param userDTOList 新增对象
     * @return 新增结果
     */
    List<UserDTO> batchInsert(final List<UserDTO> userDTOList);

    /**
     * 批量删除用户
     *
     * @param userDTOList 删除对象
     */
    void batchDelete(final List<UserDTO> userDTOList);

    /**
     * 批量更新用户
     *
     * @param userDTOList 更新对象
     * @return 更新结果
     */
    List<UserDTO> batchUpdate(final List<UserDTO> userDTOList);

    /**
     * 根据姓名查询用户
     *
     * @param name 用户姓名
     * @return 查询结果
     */
    List<UserDTO> getUserWithName(final String name);

    /**
     * 根据登录名查询用户信息
     *
     * @param loginNo 登录名
     * @return 查询结果
     */
    UserDTO getUserByLoginNo(final String loginNo);

}
